/**
 * 
 */
package com.hanhai.zrb.api.client.facade;

import java.util.List;

import javax.jws.WebService;

import com.hanhai.zrb.api.client.result.MessageResult;
import com.hanhai.zrb.model.message.enums.MessageBizType;

/**
 * @author leiruiqi@hanhai.com
 *
 */

@WebService
public interface MessageFacade {

	/**
	 * 创建系统通知类型的消息
	 * 1、指定接收的用户，支持多用户
	 * 2、可以指定内容content，不指定内容则读取MessageBizType的模版文案。
	 * 3、指定消息的业务类型
	 * 4、指定业务类型对应的业务id
	 * @param receiverUids
	 * @param content
	 * @param bizType
	 * @param bizKey
	 * @return
	 */
	MessageResult createNotifyMessage(List<Long> receiverUids,String content,MessageBizType bizType,String bizKey);
	
		
	/**
	 * 以最大id查询指定用户的站内消息，有最大条数限制
	 * @param receiverUid
	 * @param read
	 * @param maxId
	 * @param limit
	 * @return
	 */
	MessageResult queryReceiveMessageByMaxId(Long receiverUid, Integer read,Long maxId,Integer limit) ;

	/**
	 * 分页查询指定用户的站内消息
	 * 
	 * @param receiverUid
	 * @param read
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	MessageResult queryPageReceiveMessage(Long receiverUid, Integer read,int pageNum,int pageSize) ;
	
	/**
	 * 消息已读控制
	 * 
	 * @param receiverUid
	 * @param MessageReceiveId
	 * @return
	 */
	MessageResult readMessage(Long receiverUid,Long readMessageReceiveId);
	
	
	/**
	 * 用户消息批量已读处理
	 * 
	 * @param receiverUid
	 * @param readMessageReceiveIds
	 * @return
	 */
	MessageResult readMessageBatch(Long receiverUid,List<Long> readMessageReceiveIds);
	
}
